package com.cennavi.bigdata.baotou.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by zhouxiaolong on 2017/3/27.
 */
public class DiagramUtils {
    List<File> fileList = new ArrayList<File>();

    /**
     * 获取见图集合
     * @param filePath
     * @return List<File>
     */
    public List<File> getDiagramList(String filePath){
        File root = new File(filePath);
        File[] files = root.listFiles();
        if(files!=null){
            for (File file : files) {
                if (file.isDirectory()) {
                /* * 递归调用 */
                    getDiagramList(file.getAbsolutePath());
                } else if(file.getName().endsWith("png")){
                        fileList.add(file);
                }else {
                    continue;
                }
            }
        }
        return fileList;
    }

    /**
     * 获取文本内容
     * @param filePath
     * @return
     */
    public String getTimePathStr(String filePath) {
        String timePath = filePath;
        File root = new File(filePath);
        File[] files = root.listFiles();
        if(files!=null){
            for (File file : files) {
                if(file.getName().contains("timestamp")){
                    timePath += readTxtFile(file);
                    break;
                }else {
                    continue;
                }
            }
        }
        return timePath;
    }

    /**
     * 功能：Java读取txt文件的内容
     * 步骤：1：先获得文件句柄
     * 2：获得文件句柄当做是输入一个字节码流，需要对这个输入流进行读取
     * 3：读取到输入流后，需要读取生成字节流
     * 4：一行一行的输出。readline()。
     * 备注：需要考虑的是异常情况
     * @return  String
     */
    public static String readTxtFile(File file){
        String path = "";
        try {
            String encoding="UTF-8";
            if(file.isFile() && file.exists()){ //判断文件是否存在
                InputStreamReader read = new InputStreamReader(
                        new FileInputStream(file),encoding);//考虑到编码格式
                BufferedReader bufferedReader = new BufferedReader(read);
                String lineTxt = null;
                while((lineTxt = bufferedReader.readLine()) != null){
                    System.out.println(lineTxt);
                    path = lineTxt.trim();
                }
                read.close();
            }else{
                System.out.println("找不到指定的文件");
            }
        } catch (Exception e) {
            System.out.println("读取文件内容出错");
            e.printStackTrace();
        }
        return path;
    }
}
